package com.hqully.labmanage.service;

import com.github.pagehelper.PageInfo;
import com.hqully.labmanage.domain.dto.PageDTO;
import com.hqully.labmanage.domain.dto.StuInfoDTO;
import com.hqully.labmanage.domain.vo.StuInfoTree;

import java.util.List;

/**
 * <p>
 * 针对数据库表[stuInfoDTO]的操作Service
 * </p>
 *
 * @entity {@link StuInfoDTO}
 * @date 2022-10-10 19:43:54 <br>
 * @author hqully <br>
 * @version 1.0
 */

public interface StuInfoService {

     /**
      * <p>
      *     获取学生学籍信息树形表
      * </p>
      * @param code 信息节点代码,若要查询整个信息树,则传入[1]
      * @return {@link StuInfoTree} 学籍信息树
      * @date 2022-10-10 20:18:48 <br>
      * @author hqully <br>
      */
     StuInfoTree getInfoTree(String code);

     /**
      * <p>
      *     根据[stuInfoDTO]的参数分页条件查询学籍信息列表
      * </p>
      * @param page    分页参数
      * @param stuInfoDTO 查询对象条件参数
      * @return {@link PageInfo<StuInfoDTO>} 学籍信息DTO分页列表
      * @date 2022-10-10 19:43:54 <br>
      * @author hqully <br>
      */
     PageInfo<StuInfoDTO> pageStuInfos(PageDTO page, StuInfoDTO stuInfoDTO);


     /**
      * <p>
      *     根据[stuInfoDTO]的参数条件查询学籍信息
      * </p>
      * @param stuInfoDTO 查询对象
      * @return {@link List<StuInfoDTO>} 学籍信息DTO列表
      * @date 2022-10-10 19:43:54 <br>
      * @author hqully <br>
      */
     List<StuInfoDTO> listStuInfos(StuInfoDTO stuInfoDTO);


     /**
      * <p>
      *     添加学籍信息
      * </p>
      * @param stuInfoDTO 学籍信息DTO
      * @return {@link int}
      * @date 2022-10-10 19:43:54 <br>
      * @author hqully <br>
      */
     int addStuInfo(StuInfoDTO stuInfoDTO);

     /**
      * <p>
      *     更新学籍信息
      * </p>
      * @param stuInfoDTO 学籍信息DTO
      * @return {@link int}
      * @date 2022-10-10 19:43:54 <br>
      * @author hqully <br>
      */
     int updateStuInfo(StuInfoDTO stuInfoDTO);


     /**
      * <p>
      *     通过[id]删除学籍信息
      * </p>
      * @param id 学籍信息id
      * @return {@link int}
      * @date 2022-10-10 19:43:54 <br>
      * @author hqully <br>
      */
     int deleteStuInfoById(Integer id);

}
